<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        [v-cloak]{
           display: none
        }
    </style>
   
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <p>{{ msg }}</p>
        <!-- 使用v-cloak 能够解决插值表达式闪烁的问题 -->
        <p v-cloak=>{{ msg }}----------</p>
        <h4 v-text='msg'>=========</h4>
        <!-- 默认v-text是没有闪烁问题的。 -->
        <!-- v-text会覆盖元素中原本的内容，但是插值表达式只会替换自己的占位符，不会把整个内容清空 -->
        <div v-html='msg2'></div>
        <!-- v-html能加载html标签，v-text和插值表达式都会把html标签当做字符串输出 -->
        <!-- v-bind 是Vue中提供的用于绑定属性的指令 -->
        <!-- v-bind 指令可以被简写为 :要绑定的属性 -->
        <!-- v-bind 可以写合法的js表达式 -->
        <!-- Vue中提供了v-on： 事件绑定机制；v-on 简写为@ 事件需要在methods标签中定义 -->
        <input type="button" value="按钮" :title="mytitle + '21'" @click="show">
    </div>

    
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                msg: '123',
                msg2: '<h1>我是h1</h1>',
                mytitle: '这一个自定义标题'
            },
            methods: {//这个methods属性中定义了当前Vue实例所有可用的方法
                show:function() {
                    alert('Hello')
                }
            }
        })
    </script>
</body>
</html>